The present invention generally relates to the provisioning of computing resources and, more particularly, to expediting the provisioning of virtual machine resources in clusters based on cached repeated portions of a template.
Heat Orchestration Template (HOT) is a format or syntax interpretable by an orchestration engine to launch multiple composite cloud applications. HOT may describe an infrastructure pattern and a complete software stack. The HOT syntax allows architects to map components to the Virtual Machines (VMs) in which they run and specify the interdependencies among those components, and provides a mechanism for passing runtime attributes between the interdependent components. The HOT syntax can be provided in a text file and can be treated like computer code. The orchestration engine in a Heat may use a particular HOT to coordinate the deployment of virtual machines, network interfaces, and software components making sure that the dependencies are honored. The heat service provides a human- and machine-accessible service for managing the entire lifecycle of infrastructure and applications within OpenStack clouds. The instantiation of the stack is done with the Heat “stack-create” command. The deployment of the template may be considered to be successful if the orchestration engine is able to successfully instantiate all the resources, which constitute a given stack. Another example for use of templates for provisioning is by using an application, such as Docker Compose® for defining and running multi-container applications where a compose file is used to configure the application's services. All the services from this configuration file can be created and started with a “docker-compose up” command.
As an example, for a stack including an application server cluster (e.g., for a particular application) with a front end load balancer and a backend database, a HOT may describe the installation of an auto-scaling group (or cluster) that will allow the creation of VM instances with the application and also allow removal of nodes (e.g., after draining live sessions). When a new node is added to the auto-scaling group, a new VM is deployed with multiple software deployments which, in turn, trigger respective software configuration management instructions and automation tools depending on the action (e.g., create or delete actions). The multiple software deployments described in a HOT can consist of deploying middleware and deploying the application itself. These deployments can be dependent on previous deployments, and may change based on various parameters that may require configuration changes to the database.
The end to end installation and deployment process for a VM may include installing a base operating system (OS) image, middleware and applications, agents and tooling for managed VMs, which can be time consuming. When the same deployment and configuration is repeated on each resource belonging to an auto-scaling group, installation time continues to become lengthier. For deployments that require a relatively fast provisioning, a lengthy installation time can be problematic and infeasible.